# 变量与数据类型示例

# ---------------------- 1. 数字类型 ----------------------
print("===== 数字类型示例 =====")

# 1.1 整数（int）：适用于计数、序号等整数场景
student_count = 45  # 班级学生数量
year = 2025         # 当前年份
print(f"整数示例：班级有 {student_count} 名学生，今年是 {year} 年")
print(f"整数运算（明年）：{year + 1}\n")

# 1.2 浮点数（float）：适用于需要小数的场景（如身高、价格）
height = 1.75       # 身高（米）
price = 99.9        # 商品价格
print(f"浮点数示例：身高 {height} 米，商品价格 {price} 元")
print(f"浮点数运算（总价）：{price * 2} 元\n")  # 计算2件商品总价

# 1.3 复数（complex）：适用于科学计算（如信号处理）
complex_num1 = 3 + 4j  # 定义复数（实部3，虚部4）
complex_num2 = 1 - 2j
complex_sum = complex_num1 + complex_num2
print(f"复数示例：{complex_num1} + {complex_num2} = {complex_sum}")
print(f"复数实部：{complex_sum.real}，复数虚部：{complex_sum.imag}\n")


# ---------------------- 2. 组合数据类型 ----------------------
print("===== 组合数据类型示例 =====")

# 2.1 列表（list）：适用于存储有序、可修改的批量数据
fruits = ["苹果", "香蕉", "橙子"]  # 水果列表
print(f"初始水果列表：{fruits}")
fruits.append("葡萄")  # 新增元素
fruits[1] = "西瓜"     # 修改元素
print(f"修改后水果列表：{fruits}")
print(f"列表第1个元素：{fruits[0]}\n")  # 访问元素（索引从0开始）

# 2.2 元组（tuple）：适用于存储有序、不可修改的固定数据
coordinates = (39.9042, 116.4074)  # 北京经纬度（不可修改）
print(f"元组示例（经纬度）：{coordinates}")
print(f"纬度：{coordinates[0]}，经度：{coordinates[1]}\n")

# 2.3 字典（dict）：适用于存储键值对关联数据（如个人信息）
person = {
    "name": "张三",
    "age": 25,
    "city": "北京"
}
print(f"初始个人信息：{person}")
person["age"] = 26  # 修改值
person["job"] = "工程师"  # 新增键值对
print(f"更新后个人信息：{person}")
print(f"姓名：{person['name']}\n")  # 通过键访问值

# 2.4 集合（set）：适用于去重或集合运算
numbers = {1, 2, 2, 3, 3, 3}  # 自动去重
print(f"集合去重示例：{numbers}")
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(f"两个集合的交集（共同元素）：{set1 & set2}")  # 交集运算


# ---------------------- 3. 其他基础类型 ----------------------
print("\n===== 其他基础类型示例 =====")

# 3.1 字符串（str）：存储文本
message = "Hello, Python!"
print(f"字符串示例：{message}")
print(f"字符串截取（前5个字符）：{message[:5]}")

# 3.2 布尔值（bool）：条件判断
is_student = True
has_id = False
print(f"布尔值判断：{'是学生' if is_student else '不是学生'}")
print(f"是否同时满足：{is_student and has_id}")  # 逻辑运算